﻿
namespace SocialKit.LightRest
{
    /// <summary>
    /// Represents the types of HTTP protocol methods that can be used with an HTTP request.
    /// </summary>
    public enum HttpMethod
    {
        /// <summary>
        /// Represents an HTTP GET protocol method.
        /// </summary>
        GET,

        /// <summary>
        /// Represents an HTTP POST protocol method that is used to post a new entity
        /// as an addition to a URI.
        /// </summary>
        POST,

        /// <summary>
        /// Represents an HTTP PUT protocol method that is used to replace an entity
        /// identified by a URI.
        /// </summary>
        PUT,

        /// <summary>
        /// Represents an HTTP DELETE protocol method that is used to delete an entity
        /// identified by a URI.
        /// </summary>
        DELETE,

        /// <summary>
        /// Represents an HTTP HEAD protocol method. The HEAD method is identical to
        /// GET except that the server only returns message-headers in the response,
        /// without a message-body.
        /// </summary>
        HEAD,

        /// <summary>
        /// Represents a request for information about the communication options
        /// available on the request/response chain identified by the Request-URI.
        /// </summary>
        OPTIONS,

        /// <summary>
        /// The TRACE method is used to invoke a remote, application-layer
        /// loop- back of the request message.
        /// </summary>
        TRACE,

        /// <summary>
        /// Represents the HTTP CONNECT protocol method that is used with a proxy that
        /// can dynamically switch to tunneling, as in the case of SSL tunneling.
        /// </summary>
        CONNECT
    }
}
